<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <script>
    var c=1;
    function c(c){
        console.log(c);//undefined
        var c=3;
    }
    console.log(c);//1
    c(2);//c is not a function
    // 这个题主要考察的变量声明提升，首先我们看全局中有哪些变量和函数声明，有c和c函数，那么c会被提升到当前作用域最顶端，
    // 并且赋值c=undefined,随后c函数会赋值给变量c,此时c=function c(){},然后开始执行函数，第一行遇到c=1，然后1覆盖c函数，
    // 此时c=1,然后打印c，第一个值为1，接着执行c(2）函数，此时由于c=1改变了c函数的值，所以c(2)报错，c is not a function
    </script>
</body>
</html>